package flex.cc.order.manage.dto.vo;

import java.util.Date;
import java.util.List;

import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;

import flex.cc.common.vo.CommonEntity;
import flex.cc.order.manage.dto.order.OrderImgEntity;
import flex.cc.order.manage.dto.order.OrderTrackEntity;
import lombok.Data;

import javax.persistence.Column;

/**
 *
 * @author WANGCONG
 * 2021年9月7日下午9:24:55
 * @desc 服务单列表查询---接参实体类
 */
@Data
public class OrderMainVo extends CommonEntity{

	private static final long serialVersionUID = 1L;

	/**
     * 主键
     */
    private String dataId;

    /**
     * 部分导出时，存储选择的dataId集合
     */
    private String[] dataIdArr;

    /**
     * 车服平台的服务单号
     */
    private String orderNo;

    /**
     * 来源单号，即渠道方下发的服务单号
     */
    private String ownerOrderNo;

    /**
     * 渠道来源，渠道商名称，即上游，也即手工录单中的任务来源：目前有电话中心、自营
     */
    private String sourceName;

    /**
     * 是否手工单，0-非，1-是
     */
    private Integer isManual;

    /**
     * 服务单状态，
     * 01-待处理
     * 02-已受理
     * 03-已派单
     * 04-已接单
     * 05-开始出发
     * 06-到达现场
     * 07-开始作业
     * 08-已完成
     * 09-服务取消
     */
    private String status;

    /**
     * 子状态，
     * 0-派单失败
     * 1-派单成功
     */
    private String childStatus;

    /**
     * 服务单状态，查询条件支持多选
     */
    private String[] statusArr;

    /**
     * 服务类型，
     * FSG001-搭电服务
     * FSG002-换胎服务
     * FSG003-现场快修
     * FSG004-送水服务
     * FSG005-拖车服务
     * FSG006-困境救援
     * FSG007-送防冻液服务
     * FSG008-送备用钥匙服务
     * FSG009-城市住宿关怀
     * FSG010-轮胎充气
     * FSG011-城市涉水拖车
     */
    private String serviceItem;

    /**
     * 服务类型，查询条件支持多选
     */
    private String[] serviceItemArr;
    /**
     * 分公司名称
     */
    private String branchName;

    /**
     * 分公司所在省
     */
    private String province;

    /**
     * 分公司所在市
     */
    private String city;

    /**
     * 分公司所在区
     */
    private String district;

    /**
     * 联系人：t_order_customer--->username
     */
    private String userName;

    /**
     * 联系方式： t_order_customer--->mobile
     */
    private String mobile;

    /**
     * 联系地址：t_order_rescue--->addr_address
     */
    private String address;

    /**
     * 服务商：t_order_service_provider--->server_name
     */
    private String serverName;

    /**
     * 服务商：t_order_service_provider--->server_id
     */
    private String serverId;

    /**
     * 催单次数，等于0表示没有调用催单，大于0即为催单次数且表示调用过催单
     */
    private Integer urgeCount;

    /**
     * 延时单标识，默认0-非延时，1-延时
     */
    private Integer isDalayed;

    /**
     * 救援环境
     */
    private String environment;

    /**
     * 查询条件：起止时间
     */
    private String startTime;
    private String endTime;

    /**
     * 快速查询标识：1.延时单、2.催单、3.待处理、4.取消单、5.手工单
     */
    private String searchMark;

    /**
     * 查询条数，用于接收页面参数，全部导出时使用
     */
    private Integer total;

    /**
     * 车服系统催单操作，所需传参字段值
     */
    private String urgeDataIds;
    private String urgeContent;

    /**
     * 服务单相关图片张数，导出时使用
     */
    private Integer imgCount;

    /**
     * 服务单导出时，创建日期列：只要年月日
     */
    private String createD;

    /**
     * 服务单查询：机构省市区条件
     */
    private String[] provinceArr;
    private String[] cityArr;
    private String[] areaArr;

    /**
     * 用户负责区域查询条件
     */
    private String[] channelArr;
    private String[] serviceArr;


    /**
     * 用于判断延时单标识
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date synTime;

    /**
     * 催单时间
     */
    @Column(name = "urge_time")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date urgeTime;

    /**
     * 轨迹集合
     */
    private List<OrderTrackEntity> listOrderTrack;

    private List<OrderImgEntity> listOrderImg;
    
    private Integer oaurgeCount;//催单次数
    
    private String  cancelReason;//取消原因
    
    private String evaluateFlag;//评价标识
    private String cancelRemark;//取消备注
    private String  rescueName;//接单师傅名称

    /**
     * 车牌号
     */
    private String carNo;
    /**
     * 救援商
     */
    private String rescuerId;
    
}
